
const inquirer = require('inquirer')
const fs = require('fs')
const chalk = require('chalk')
const { templateList } = require('../../data/template')

/**
 * @description 添加命令
 */
const addQuestion = [
    {
        name: 'name',
        type: 'input',
        message: '请输入模板名称',
        validate(val) {
            if (!val) {
                return '名称为必填项!'
            } else if (templateList.some(item => item.name === val)) {
                return '名称重复!'
            } else {
                return true
            }
        }
    },
    {
        name: 'description',
        type: 'input',
        message: '请输入模板描述'
    },
    {
        name: 'link',
        type: 'input',
        message: '请输入模板地址!',
        validate(val) {
            return !val ? '模板地址为必填项' : true
        }
    }
]
// 操作方法
module.exports = () => {
    console.clear()
    inquirer.prompt(addQuestion).then(answer => {
        // 将模板的name 赋值给 value
        let template = {value: answer.name, ...answer}
        // 将模板压入 templateList中
        templateList.push(template)
        // 通过fs重写文件进行保存
        const data = 'exports.templateList = '+JSON.stringify(templateList)
        fs.writeFile(process.cwd() + '/lib/data/template.js', data, err => {
            if (err) {
                console.log(chalk.redBright('添加失败'))
                console.log(err)
            }
            console.log(chalk.greenBright('添加成功'))
            console.table(templateList)
        })
    })
}
